.\" Copyright (C) 2004, 2005 International Business Machines Corporation
.\" Written by Megan Schneider based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_TPM_GetPubEndorsementKey" 3 "2004-05-25" "TSS 1.1"
.ce 1
TCG Software Stack Developer's Reference
.SH NAME
Tspi_TPM_GetPubEndorsementKey \- create a TSS key object from the TPM's public endorsement key
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_TPM_GetPubEndorsementKey(TSS_HTPM        " hTPM ",            TSS_BOOL  " fOwnerAuthorized ","
.BI "                                         TSS_VALIDATION* " pValidationData ", TSS_HKEY* " phEndorsementPubKey ");"
.fi
.sp
.ad
.hy

.SH "DESCRIPTION"
.PP
\fBTspi_TPM_GetPubEndorsementKey\fR
This function retrieves the public endorsement key (PubEK) from the TPM and creates a TSS
key object for it, whose handle is returned in \fIphEndorsementPubKey\fR. Due to
the fact that different TPM chips validate the PubEK in different ways, application
verification of the PubEK (using a non-NULL \fIpValidationData\fR is \fBbroken\fR.
Tspi_TPM_GetPubEndorsementKey should be called with a NULL \fIpValidationData\fR parameter
to allow the TSS to verify the PubEK itself.

.SH "PARAMETERS"
.PP
.SS hTPM
The \fIhTPM\fR parameter is used to specify the handle of the TPM object.
.SS fOwnerAuthorized
If TRUE, the TPM owner secret must be provided to get the public endorsement key.
If FALSE, no TPM owner secret must be provided to get the public endorsement key.
.SS pValidationData
If non-NULL, the application should set the pValidationData->rgbExternalData parameter
to 20 bytes of random data before calling Tspi_TPM_GetPubEndorsementKey. On successful
completion of the command, the structure will provide buffers containing the validation
data and the buffer the validation data was computed from.
.SS phEndorsementPubKey
Receives a handle to a key object representing the TPM's public endorsement key.

.SH "RETURN CODES"
.PP
\fBTspi_TPM_GetPubEndorsementKey\fR returns TSS_SUCCESS on success,
otherwise one of the following values is returned:
.TP
.SM TSS_E_INVALID_HANDLE
\fIhTPM\fR is not a valid handle.

.TP
.SM TSS_E_INTERNAL_ERROR
An internal SW error has been detected.

.TP
.SM TSS_E_BAD_PARAMETER
One or more parameters is bad.

.TP
.SM TPM_E_DISABLED_CMD
Reading of PubEK from TPM has been disabled.

.SH "CONFORMING TO"

.PP
\fBTspi_TPM_GetPubEndorsementKey\fR conforms to the Trusted Computing
Group Software Specification version 1.1 Golden

.SH "SEE ALSO"

.PP
\fBTspi_Key_GetPubKey\fR(3).

